Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

SQL Stored Procedure

Общее описание

Блок SQL Stored Procedure предназначен для вызова хранимых процедур в реляционных базах данных в рамках потока обработки сообщений. Компонент встраивается в поток и выполняет взаимодействие с БД: передает входные параметры, вызывает процедуру и обрабатывает результаты.

Механизм работает следующим образом: блок SQL Stored Procedure получает сообщение из потока, извлекает из него параметры для вызова хранимой процедуры (из payload или заголовков), формирует и отправляет запрос к БД через настроенное JDBC‑соединение.

Блок SQL Stored Procedure может использоваться в качестве:

  • блока отправителя.

Настройка блока

В данном разделе описаны параметры блока SQL Stored Procedure, которые необходимо заполнить при его настройке.

Базовые параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Dynamic EndpointdynamicEndpointПараметр позволяет включить встроенную функциональность динамического определения вызываемой конечной точки. При включении параметра структура блока меняется таким образом, что в коде вместо определения to проставляется "toD", а значение самого вызываемого ресурса может собираться из переменной, например ${header.foo}.TrueЛогическое значение
TemplatetemplateУстанавливает шаблон хранимой процедуры для выполнения. Вы можете вынести шаблон во внешний файл, используя префиксы file: или classpath: и указав расположение файла.Строка
ConnectionconnectionЭтот параметр позволяет выбрать предсозданное подключение к БД или создать новое с помощью визарда Connection Manager.Список
DescriptiondescriptionКраткое описание блока.Строка
BatchbatchОпределяет, выполнять ли вызовы хранимой процедуры в пакетном режиме (batch). При значении True позволяет передавать массивы данных и выполнять процедуру многократно за один вызов. Подходит для массовых операций вставки/обновления.FalseЛогическое значение
FunctionfunctionУказывает, что вызываемый объект БД — функция (а не процедура). При активации компонента ожидает возврата значения, которое будет включено в результат. Если False, вызывается процедура. Функция всегда возвращает значение (скаляр или набор данных), которое помещается в payload или заголовок (в зависимости от настроек). Пример: вызов функции calculate_total(order_id) для получения итоговой суммы заказа.FalseЛогическое значение
NoopnoopРежим «без операции» (No Operation). При значении True блок не выполняет вызов БД, а просто передает входящее сообщение дальше по потоку. Используется для отладки, тестирования или временного отключения функционала без удаления блока из потока. В этом режиме игнорируются все остальные параметры, кроме OutputHeader.FalseЛогическое значение
Output HeaderoutputHeaderИмя заголовка сообщения, в который будут помещены результаты выполнения хранимой процедуры (вместо замены тела сообщения — payload). Позволяет сохранить исходное сообщение и добавить к нему метаданные из БД. Формат результата: JSON‑объект или XML с данными из ResultSet/выходных параметров.Строка
Use Message Body For TemplateuseMessageBodyForTemplateОпределяет, использовать ли тело сообщения (payload) в качестве шаблона SQL‑запроса/хранимой процедуры. При True содержимое payload интерпретируется как SQL‑код. Повышает гибкость, но требует осторожности из‑за риска SQL‑инъекций. Требования: payload должен содержать корректный SQL‑код или вызов процедуры (например, CALL my_proc(?, ?)). Рекомендуется использовать только в доверенных сценариях или с предварительной санизацией данных.FalseЛогическое значение

Расширенные параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Lazy Start ProducerlazyStartProducerОпределяет, должен ли отправитель стартовать в отложенном режиме, т. е. при получении первого сообщения. Для выявления ошибок и отладки при активации потока выставьте значение False. Если поток используется редко или необходима его быстрая активация, выставьте значение True. Учтите, что обработка первого сообщения в этом случае будет замедлена.FalseЛогическое значение
Template OptionstemplateOptionsНастраивает Spring JdbcTemplate с помощью пар ключ/значение из карты (Map).Строка
PatternpatternШаблон взаимодействия (Exchange Pattern) для обмена сообщениями. Определяет направление потока данных между его компонентами.
Возможные значения:
  • InOnly (однонаправленный вызов: сообщение отправляется, ответ игнорируется);
  • InOut (двунаправленный вызов: ожидается ответ от хранимой процедуры, который будет передан дальше по потоку).
Выбор шаблона влияет на то, как компонент обрабатывает результат выполнения процедуры и передает его следующему шагу потока.
Список
DisableddisabledОпределяет, будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться.FalseЛогическое значение